﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MazeBuilder.Entities.Tiles;
using RoomModuleCatalog;

namespace MazeBuilder
{
  public abstract class TileFactory
  {
    private static TileFactory _instance;
    private static IMazeConfiguration _configuration;

    public static TileFactory GetFactory(IMazeConfiguration configuration) {
      _instance = null;
      _configuration = configuration;
      
      _instance = new FantasyTileFactory();

      return _instance;
    }

    public virtual Tile CreateTile(int row, int col) {
      return new NullTile(row, col);
    }


    public virtual Tile GetTile(string tag, int row, int col) {
      return new NullTile();
    }

    public abstract Tile GetTileFromHashCode(int hashCode, int row, int col);
  }
}
